package org.pb.pet.service;

import org.pb.basic.service.IBaseService;
import org.pb.basic.utils.AjaxResult;
import org.pb.basic.utils.PageList;
import org.pb.pet.domain.Pet;
import org.pb.pet.domain.SearchMasterMsg;
import org.pb.pet.query.SearchMasterMsgQuery;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 寻主信息的业务层接口
 * @author pb
 */
public interface ISearchMasterMsgService extends IBaseService<SearchMasterMsg, SearchMasterMsgQuery> {

    /**
     * 获取到所有的寻主信息
     * @return 返回得到的寻主信息列表
     */
    List<SearchMasterMsg> getAll();

    /**
     * 发布寻主信息
     * @param msg 宠物对应的寻主信息
     * @return 返回寻主信息发布结果
     */
    AjaxResult publish(SearchMasterMsg msg, HttpServletRequest request);

    /**
     * 获取到待处理宠物数据
     * @param query 寻主信息查询条件
     * @return 查询处理结果
     */
    PageList<SearchMasterMsg> pendingQuery(SearchMasterMsgQuery query, HttpServletRequest request);

    /**
     * 获取已处理宠物寻主信息
     * @param query 寻主信息查询条件
     * @return 查询处理结果
     */
    PageList<SearchMasterMsg> processedQuery(SearchMasterMsgQuery query, HttpServletRequest request);

    /**
     * 获取店铺管理员用户的宠物寻主信息
     * @param query 寻主信息查询条件
     * @return 查询处理结果
     */
    PageList<SearchMasterMsg> userQuery(SearchMasterMsgQuery query, HttpServletRequest request);

    /**
     * 处理待处理的寻主信息
     * @param pet 对应处理的宠物信息
     * @param request
     */
    void handle(Pet pet, HttpServletRequest request);

}
